#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "dicadt.h"

struct dicCDT{
	FILE * source;
};


dicADT NewDic (const char * file_name)
{
	dicADT dic;

	if ((dic = malloc (sizeof (struct dicCDT))) == NULL){
		fprintf (stdout, "Ha ocurrido un error inesperado, por favor intente nuevamente\n");
		return NULL;
	}
	if (file_name == NULL || ((dic->source = fopen (file_name, "r")) == NULL)){
		fprintf (stdout, "El archivo especificado no existe\n");
		return NULL;
	}
	return dic;
}

void FreeDic (dicADT dic)
{
	if (dic == NULL){
		fprintf (stdout, "Error\n");
		return;
	}
	fclose (dic->source);
	free (dic);
	return ;
}

int NextWord (dicADT dic, char * answer)
{
	int i, aux;

	for (i=0; i<MAX_WORD_LENGTH ; i++){
		if ((answer[i] = (char)fgetc (dic->source)) == EOF){
		    answer[i] = 0;
			return 0;
		}
		/* Elimino los enters del archivo fuente */
		if (answer[i] == '\n'){
			answer[i] = '\0';
			return 1;
		}
	}

	/* Si la palabra era mas larga que 8 leo hasta el final */
	if (i == MAX_WORD_LENGTH){
		do {
			aux = fgetc (dic->source);
		}
		while (aux != '\n');
	}

	return 1;
}
